package com.guigu.gulicart.service;

import com.guigu.gulicart.entity.dto.AddToCartDto;
import com.guigu.gulicart.entity.dto.UpdateCartItemDto;
import com.guigu.gulicommon.entity.pojo.Cart;
import com.guigu.gulicommon.entity.pojo.CartItem;
import com.guigu.gulicommon.entity.pojo.res.Res;

import java.util.List;

/**
 * @author 陈俊杰
 */
public interface CartService {


    /**
     * 添加商品
     *
     * @param addToCartDto 添加商品参数
     * @return 添加结果
     */
    Res<CartItem> addToCart(AddToCartDto addToCartDto);

    /**
     * 获取购物车信息
     */
    Res<Cart> getCartInfo();

    /**
     * 批量删除购物项
     *
     * @param ids 批量删除购物项的id集合
     * @return vo 被删除的购物项的信息
     */
    Res<Long> deleteByIdsBatch(List<Long> ids);

    /**
     * 修改购物车项商品数量(通用)
     *
     * @param dto 修改购物车项商品数量的参数
     * @return vo 修改后购物车项商品数量的信息
     */
    Res<CartItem> update(UpdateCartItemDto dto);
}
